/*
 * set.h
 *
 *  Created on: Nov 1, 2014
 *      Author: Ahmed Kamel
 */

#ifndef SET_H_
#define SET_H_

#include "new.h"
#include "Object.h"

extern const void * Set;
void * add (void * set, const void * element);
void * find (const void * set, const void * element);
void * drop (void * set, const void * element);
int contains (const void * set, const void * element);

int apply (const void * set, int (* action) (void * object, va_list ap), ...);

#endif /* SET_H_ */
